﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DTO;
using System.Data.SqlClient;
namespace DAL
{
    public class LichHoc_DAL
    {
         private DataProvider _provider = new DataProvider();
	
		    public LichHoc_DAL()
		    {
			    _provider.connect();
		    }
            public void ThemLichHoc(LichHoc_DTO lh)
            {
                string insertCommand = @"INSERT INTO LICHHOC (Malop, Tuan, Thang, Thu2, Thu3, Thu4, Thu5, Thu6) VALUES('" +
                       lh.Malop + "', " +
                       lh.Tuan + ", " + lh.Thang + ",'" + lh.Thu2 + "','" + lh.Thu3 + "','" + lh.Thu4 + "','" + lh.Thu5 + "','" + lh.Thu6 + "')";

                _provider.executeNonQuery(insertCommand);
            }
            public List<LichHoc_DTO> DS_LichHoc() 
            {
                SqlDataReader reader = (SqlDataReader)_provider.executeQuery("DS_LichHoc");


                List<LichHoc_DTO> List_LH = new List<LichHoc_DTO>();

                while (reader.Read())
                {
                    LichHoc_DTO LH = new LichHoc_DTO();
                    LH.MaLH = int.Parse(reader["MaLH"].ToString());
                    LH.Tuan = int.Parse(reader["Tuan"].ToString());
                    LH.Thang = int.Parse(reader["Thang"].ToString());
                    LH.Malop = reader["Malop"].ToString();
                    LH.Thu2 = reader["Thu2"].ToString();
                    LH.Thu3 = reader["Thu3"].ToString();
                    LH.Thu4 = reader["Thu4"].ToString();
                    LH.Thu5 = reader["Thu5"].ToString();
                    LH.Thu6 = reader["Thu6"].ToString();

                    List_LH.Add(LH);
                }

                reader.Close();
                return List_LH;
            }
            public List<LichHoc_DTO> DS_ThucDonTheoTuan(int tuan)
            {
                // Một list các parameter
                List<SqlParameter> paramters = new List<SqlParameter>();
                paramters.Add(new SqlParameter("@Tuan", tuan));

              

                // Gọi hàm excute sử dujg procedure có parameter
                SqlDataReader reader = (SqlDataReader)_provider.executeQueryParameter("DS_LichHocTheoTuan", paramters);

                List<LichHoc_DTO> List_LH = new List<LichHoc_DTO>();

                while (reader.Read())
                {
                    LichHoc_DTO LH = new LichHoc_DTO();
                    LH.MaLH = int.Parse(reader["MaLH"].ToString());
                    LH.Tuan = int.Parse(reader["Tuan"].ToString());
                    LH.Thang = int.Parse(reader["Thang"].ToString());
                    LH.Malop = reader["Malop"].ToString();
                    LH.Thu2 = reader["Thu2"].ToString();
                    LH.Thu3 = reader["Thu3"].ToString();
                    LH.Thu4 = reader["Thu4"].ToString();
                    LH.Thu5 = reader["Thu5"].ToString();
                    LH.Thu6 = reader["Thu6"].ToString();
                
                    List_LH.Add(LH);
                }

                reader.Close();
                return List_LH;
            }
            public List<LichHoc_DTO> DS_ThucDonTheoThang(int thang)
            {
                // Một list các parameter
                List<SqlParameter> paramters = new List<SqlParameter>();
                paramters.Add(new SqlParameter("@Thang", thang));



                // Gọi hàm excute sử dujg procedure có parameter
                SqlDataReader reader = (SqlDataReader)_provider.executeQueryParameter("DS_LichHocTheoThang", paramters);

                List<LichHoc_DTO> List_LH = new List<LichHoc_DTO>();

                while (reader.Read())
                {
                    LichHoc_DTO LH = new LichHoc_DTO();
                    LH.MaLH = int.Parse(reader["MaLH"].ToString());
                    LH.Tuan = int.Parse(reader["Tuan"].ToString());
                    LH.Thang = int.Parse(reader["Thang"].ToString());
                    LH.Malop = reader["Malop"].ToString();
                    LH.Thu2 = reader["Thu2"].ToString();
                    LH.Thu3 = reader["Thu3"].ToString();
                    LH.Thu4 = reader["Thu4"].ToString();
                    LH.Thu5 = reader["Thu5"].ToString();
                    LH.Thu6 = reader["Thu6"].ToString();

                    List_LH.Add(LH);
                }

                reader.Close();
                return List_LH;
            }
            public List<LichHoc_DTO> DS_LichHocTheoMalop(string malop)
            {
                // Một list các parameter
                List<SqlParameter> paramters = new List<SqlParameter>();
                paramters.Add(new SqlParameter("@Malop", malop));



                // Gọi hàm excute sử dujg procedure có parameter
                SqlDataReader reader = (SqlDataReader)_provider.executeQueryParameter("DS_LichHocTheoMalop", paramters);

                List<LichHoc_DTO> List_LH = new List<LichHoc_DTO>();

                while (reader.Read())
                {
                    LichHoc_DTO LH = new LichHoc_DTO();
                    LH.MaLH = int.Parse(reader["MaLH"].ToString());
                    LH.Tuan = int.Parse(reader["Tuan"].ToString());
                    LH.Thang = int.Parse(reader["Thang"].ToString());
                    LH.Malop = reader["Malop"].ToString();
                    LH.Thu2 = reader["Thu2"].ToString();
                    LH.Thu3 = reader["Thu3"].ToString();
                    LH.Thu4 = reader["Thu4"].ToString();
                    LH.Thu5 = reader["Thu5"].ToString();
                    LH.Thu6 = reader["Thu6"].ToString();

                    List_LH.Add(LH);
                }

                reader.Close();
                return List_LH;
            }

            public void Xoa(LichHoc_DTO lh)
            {
                string deleteCommand = "DELETE FROM LICHHOC WHERE MaLH = " + lh.MaLH;

                _provider.executeNonQuery(deleteCommand);
            }
            public void Sua(LichHoc_DTO lh)
            {
                string updateCommand = "UPDATE LICHHOC SET Malop='" + lh.Malop+ "',  Tuan=" + lh.Tuan + ", Thang=" + lh.Thang + ", Thu2= '" + lh.Thu2 + "', Thu3= '" + lh.Thu3 + "', Thu4='" + lh.Thu4 + "', Thu5='" + lh.Thu5 + "', Thu6= '" + lh.Thu6 + 
                                                          "' WHERE MaLH=" + lh.MaLH;
                _provider.executeNonQuery(updateCommand);
            }
            }


}

